///*********************************************************************************************************************
// * COPYRIGHT NOTICE
// * Copyright (c) 2020,��ɿƼ�
// * All rights reserved.
// * ��������QQȺ��һȺ��179029047(����)  ��Ⱥ��244861897(����)  ��Ⱥ��824575535
// *
// * �����������ݰ�Ȩ������ɿƼ����У�δ����������������ҵ��;��
// * ��ӭ��λʹ�ò������������޸�����ʱ���뱣����ɿƼ��İ�Ȩ������
// *
// * @file       		isr
// * @company	   		�ɶ���ɿƼ����޹�˾
// * @author     		��ɿƼ�(QQ790875685)
// * @version    		�鿴doc��version�ļ� �汾˵��
// * @Software 			MDK FOR C251 V5.60
// * @Target core		STC32G12K128
// * @Taobao   			https://seekfree.taobao.com/
// * @date       		2020-4-14
// ********************************************************************************************************************/
#include "headfile.h"
#include "math.h"

float vbat=0.0;
double Yaw=0.0;
double vz=0.0;
double Yaw_now=0.0;
double Yaw_error=0.0;
short int object_x=0;//V831���ص�������������
short int object_y=0;//V831���ص�������������
unsigned short time_10ms=0;
unsigned char time_100ms=0;
unsigned char time_50ms=0;
unsigned char BI_100ms=0;
short int rect_point[4][2] = {0};	//����˳��Ϊ���½ǿ�ʼ˳ʱ��ȡ��
short int jieshoushuzu[150]={0};
unsigned char jieshou_flag=0;
short int jieshou_count=0;

int cnt=0;

//uart
void TM0_Isr() interrupt 1
{	
//	R(0);
	time_10ms++;
	time_50ms++;
	
	if(flag_task==1)
	{
		cloud_yaw_duty=zuobiao[0][0];
		cloud_pitch_duty=zuobiao[0][1];
		Steer_Y_P(cloud_yaw_duty,cloud_pitch_duty);
//		pwm_duty(CLOUD_YAW_Pin,cloud_yaw_duty);//����
//		pwm_duty(CLOUD_PITCH_Pin,cloud_pitch_duty);
	}
//	Jiazhi(&zuobiao[1][0],&zuobiao[2][0],0.5);
	else if(flag_task==3&&pause_flag==0)
	{

		Move(1,5);
			
	}		
	else if(flag_task==6)
	{
		renwusi(dx,dy,5.21);
	}
	
//	cloud_time++;
//	if(cloud_time>=100)
//	{
//		cloud_flag=1;
//	}
//	if(cloud_state!=0)
//	{
//		cloud_time++;
//		if(cloud_time>=100)
//		{
//			
//		}
//	}
	if(time_10ms>=10)
	{	
		time_10ms=0;
//			time_100ms++;
//			if(time_100ms == 100)time_100ms=100;
	}	
}



//UART1�ж�
void UART1_Isr() interrupt 4
{
//    uint8 res;
//	static uint8 dwon_count;
    if(UART1_GET_TX_FLAG)
    {
        UART1_CLEAR_TX_FLAG;
        busy[1] = 0;
    }
    if(UART1_GET_RX_FLAG)
    {
        UART1_CLEAR_RX_FLAG;
//        res = SBUF;
//        //�����Զ�����
//        if(res == 0x7F)
//        {
//            if(dwon_count++ > 20)
//                IAP_CONTR = 0x60;
//        }
//        else
//        {
//            dwon_count = 0;
//        }
		if(jieshou_flag == 0)
		{
			jieshoushuzu[jieshou_count++]=SBUF;
			if(jieshoushuzu[0] != '#')
			{
				jieshou_count=0;
			}
			if(jieshoushuzu[jieshou_count - 1] == '@')
			{
				jieshou_flag=1;
			}
		}	
		if(SBUF=='!')
		{
			R(1);G(0);B(0);
			renwusi_stop=1;
		}
		
    }
}

//UART2�ж�
void UART2_Isr() interrupt 8
{
    if(UART2_GET_TX_FLAG)
	{
        UART2_CLEAR_TX_FLAG;
		busy[2] = 0;
	}
    if(UART2_GET_RX_FLAG)
	{
        UART2_CLEAR_RX_FLAG;
		//�������ݼĴ���Ϊ��S2BUF

	}
}


//UART3�ж�
void UART3_Isr() interrupt 17
{
    if(UART3_GET_TX_FLAG)
	{
        UART3_CLEAR_TX_FLAG;
		busy[3] = 0;
	}
    if(UART3_GET_RX_FLAG)
	{
      UART3_CLEAR_RX_FLAG;
		//�������ݼĴ���Ϊ��S3BUF
			
			if(jieshou_flag == 0)
			{
				jieshoushuzu[jieshou_count++]=S3BUF;
				if(jieshoushuzu[0] != '#')
				{
					jieshou_count=0;
				}
				if(jieshoushuzu[jieshou_count - 1] == '@')
				{
					jieshou_flag=1;
				}
			}

	}
}


//UART4�ж�
void UART4_Isr() interrupt 18
{
    if(UART4_GET_TX_FLAG)
	{
        UART4_CLEAR_TX_FLAG;
		busy[4] = 0;
	}
    if(UART4_GET_RX_FLAG)
	{
			UART4_CLEAR_RX_FLAG;
	}
}

void INT0_Isr() interrupt 0
{

}
void INT1_Isr() interrupt 2
{
	if(P71 == 1)knob_count ++;
	else knob_count --;
}
void INT2_Isr() interrupt 10
{
	INT2_CLEAR_FLAG;  //����жϱ�־
}
void INT3_Isr() interrupt 11
{
	INT3_CLEAR_FLAG;  //����жϱ�־
}

void INT4_Isr() interrupt 16
{
	INT4_CLEAR_FLAG;  //����жϱ�־
}


void TM1_Isr() interrupt 3
{

}

void TM2_Isr() interrupt 12  //���ڴ���
{
	TIM2_CLEAR_FLAG;  //����жϱ�־
}
void TM3_Isr() interrupt 19
{
	TIM3_CLEAR_FLAG; //����жϱ�־
//	B(0);
//	Encoder_Get(e_zero, e_nochange);
//	vbat = get_Battery();
//	B(1);
//	//�������ж��¼���Ӧ
//	if(bi_flag == 1)
//	{
//		static unsigned char bitimes=0;
//		bitimes++;
//		if(bitimes >= 10)//0.5s
//		{
//			bitimes=0;
//			bi_flag=0;
//			//pwm_freq( PWMA_CH1N_P11,14000,0);
//		}
//	}
}

void TM4_Isr() interrupt 20
{
	TIM4_CLEAR_FLAG; //����жϱ�־
//	ccd_collect();	 //CCD�ɼ�����
}

//void  INT0_Isr()  interrupt 0;
//void  TM0_Isr()   interrupt 1;
//void  INT1_Isr()  interrupt 2;
//void  TM1_Isr()   interrupt 3;
//void  UART1_Isr() interrupt 4;
//void  ADC_Isr()   interrupt 5;
//void  LVD_Isr()   interrupt 6;
//void  PCA_Isr()   interrupt 7;
//void  UART2_Isr() interrupt 8;
//void  SPI_Isr()   interrupt 9;
//void  INT2_Isr()  interrupt 10;
//void  INT3_Isr()  interrupt 11;
//void  TM2_Isr()   interrupt 12;
//void  INT4_Isr()  interrupt 16;
//void  UART3_Isr() interrupt 17;
//void  UART4_Isr() interrupt 18;
//void  TM3_Isr()   interrupt 19;
//void  TM4_Isr()   interrupt 20;
//void  CMP_Isr()   interrupt 21;
//void  I2C_Isr()   interrupt 24;
//void  USB_Isr()   interrupt 25;
//void  PWM1_Isr()  interrupt 26;
//void  PWM2_Isr()  interrupt 27;